package edu.gatech.oad.antlab.person;
import java.util.Random;


/**
 *  A simple class for person 2
 *  returns their name and a
 *  modified string 
 *
 * @author Bob
 * @version 1.1
 */
public class Person2 {
	
    /** Holds the persons real name */
    private String name;
    
	 	/**
	 * The constructor, takes in the persons
	 * name
	 * @param pname the person's real name
	 */
	 public Person2(String pname) {
		 name = pname;
	 }
	 
	/**
	 * This method should take the string
	 * input and return its characters in
	 * random order.
	 * given "gtg123b" it should return
	 * something like "g3tb1g2".
	 *
	 * @param input the string to be modified
	 * @return the modified string
	 */
	private String calc(String input) {
		Random rand = new Random();
		
		// Saves input to a new string to avoid changing input
		String edit = input;
		
		// Creates a string to return
		String fin = "";
		
		// While edit still has characters, pulls a random character and saves it to the end of fin
		while (edit.length() != 0){
			int x = rand.nextInt(edit.length());
			fin = fin + edit.charAt(x);
			
			edit = edit.subSequence(0, x) + edit.substring(x+1); 
		}
		
		// Returns modified string
		return fin;
	}
	
	/**
	 * Return a string rep of this object
	 * that varies with an input string
	 *
	 * @param input the varying string
	 * @return the string representing the 
	 *         object
	 */
	public String toString(String input) {
	  return name + calc(input);
	}
}
